#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 2e5 + 5;

int w, h, n;
struct Node {
  int w;
  set<int> pt;
  multiset<int> seg;
  Node(int _w) {
    w = _w;
    pt.insert(0), pt.insert(w);
    seg.insert(w);
  }
  void insert(int x) {
    auto it1 = pt.upper_bound(x);
    auto it0 = prev(it1);
    int d = *it1 - *it0;
    seg.erase(seg.find(d));
    seg.insert(x - *it0), seg.insert(*it1 - x);
    pt.insert(x);
  }
  int query() { return *seg.rbegin(); }
};

int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> w >> h >> n;
  Node nodew(w), nodeh(h);
  while (n--) {
    char c;
    int x;
    cin >> c >> x;
    if (c == 'H')
      nodeh.insert(x);
    else
      nodew.insert(x);
    cout << 1ll * nodew.query() * nodeh.query() << endl;
  }
  return 0;
}